<?php

defined('NOMATCH') || define('NOMATCH', qtype_preg_matching_results::NO_MATCH_FOUND);


class qtype_preg_cross_tests_from_att_nullsubexpr
{
	//two stars with round brakets test
	function data_for_test_nullsubexpr_two_stars_round_brakets () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));						
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>'a',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));						
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));						
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));						
		return array('regex'=>'(a*)*',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//star in round brakets concatenated plus test
	function data_for_test_nullsubexpr_star_round_brakets_plus () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>'a',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>'aa',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)+',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//plus in round brakets concatenated star test
	function data_for_test_nullsubexpr_plus_round_brackets_star () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0),
						'length'=>array(0=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a+)*',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//plus in round brakets concatenated plus test
	function data_for_test_nullsubexpr_plus_round_brackets_plus () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>'a',												//next
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>NOMATCH),
						'length'=>array(0=>NOMATCH),
						'left'=>array(qtype_preg_matching_results::UNKNOWN_CHARACTERS_LEFT),
						'next'=>'aa',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a+)+',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//character squared brackets concatenated star in round brackets concatenated star
	function data_for_test_nullsubexpr_squared_bracketsstar_round_brackets () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([a]*)*',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//character squared brackets concatenated star in round brackets concatenated plus
	function data_for_test_nullsubexpr_char_brakets_star_plus () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'x',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>'aa',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([a]*)+',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}
	//negative character squared brackets concatenated star in round brackets concatenated star
	function data_for_test_nullsubexpr_negativ_charbrackets_star_conc_star () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'b',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>'w',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'aaaaaab',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([^b]*)*',
					 'tests'=>array($test1, $test2, $test3, $test4));
	}	
	//2 characters squared brackets concatenated star in round brackets concatenated star
	function data_for_test_nullsubexpr_2_characters_brackets_star () {
		$test1 = array( 'str'=>'a',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'ababab',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test4 = array( 'str'=>'bababa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test5 = array( 'str'=>'b',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test6 = array( 'str'=>'bbbbbb',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test7 = array( 'str'=>'aaaabcde',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>5,1=>5),
						'left'=>array(3),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([ab]*)*',
					 'tests'=>array($test1, $test2, $test3, $test4, $test5, $test6, $test7));
	}
	//negative character squared brackets concatenated star in round brackets concatenated star
	function data_for_test_nullsubexpr_negative_char_brackets_star_star () {
		$test1 = array( 'str'=>'b',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'bbbbbb',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test3 = array( 'str'=>'aaaaaa',
						'is_match'=>false,
						'full'=>false,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(6),
						'next'=>'b',
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([^a]*)*',
					 'tests'=>array($test1, $test2, $test3));
	}
	//negative 2 characters squared brackets concatenated star in round brackets concatenated star
	function data_for_test_nullsubexpr_negative_2_char_brackets_star_brackets () {
		$test1 = array( 'str'=>'ccccxx',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>6,1=>6),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		$test2 = array( 'str'=>'ababab',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(6),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'([^ab]*)*',
					 'tests'=>array($test1, $test2));
	}
	//character concatenated plus or a in round brackets concatenated star
	function data_for_test_nullsubexpr_char_plus_bracets_star () {
		$test1 = array( 'str'=>'zabcde',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>1),
						'length'=>array(0=>2,1=>1),
						'left'=>array(4),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'((z)+|a)*',
					 'tests'=>array($test1));
	}
	//no *? +? mimimal match ops
	function data_for_test_nullsubexpr_minimal_match_ops () {
		$test1 = array( 'str'=>'aaaaaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0),
						'length'=>array(0=>1),
						'left'=>array(5),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'a+?',
					 'tests'=>array($test1));
	}
	//round brackets test
	function data_for_test_nullsubexpr_round_brackets () {
		$test1 = array( 'str'=>'aaa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>1,1=>1),
						'left'=>array(2),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a)',
					 'tests'=>array($test1));
	}
	//charactar concatenated with star and question mark in round brackets
	function data_for_test_nullsubexpr_char_star_question_makr () {
		$test1 = array( 'str'=>'aaa',
						'is_match'=>false,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0),
						'length'=>array(0=>0,1=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*?)',
					 'tests'=>array($test1));
	}
	//charactar concatenated with star and question mark
	function data_for_test_nullsubexpr_char_question_makr () {
		$test1 = array( 'str'=>'aaa',
						'is_match'=>false,
						'full'=>true,
						'index_first'=>array(0=>0),
						'length'=>array(0=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a)*?',
					 'tests'=>array($test1));
	}
	//star concatenated question mark test
	function data_for_test_nullsubexpr_star_question_mark () {
		$test1 = array( 'str'=>'aaa',
						'is_match'=>false,
						'full'=>true,
						'index_first'=>array(0=>0),
						'length'=>array(0=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*?)*?',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars
	function data_for_test_nullsubexpr_screnned_brackets_stars_1 () {
		$test1 = array( 'str'=>'x',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>0),
						'length'=>array(0=>1,1=>0,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars
	function data_for_test_nullsubexpr_screnned_brackets_stars_2 () {
		$test1 = array( 'str'=>'ax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars
	function data_for_test_nullsubexpr_screnned_brackets_stars_3 () {
		$test1 = array( 'str'=>'axa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars with back reference
	function data_for_test_nullsubexpr_screnned_brackets_stars_reference_1 () {
		$test1 = array( 'str'=>'x',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>0,3=>1),
						'length'=>array(0=>1,1=>0,2=>1,3=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)\(\1\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars with back reference
	function data_for_test_nullsubexpr_screnned_brackets_stars_reference_2 () {								//???
		$test1 = array( 'str'=>'ax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>1,2=>1,3=>2),
						'length'=>array(0=>2,1=>0,2=>1,3=>0),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)\(\1\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars with back reference
	function data_for_test_nullsubexpr_screnned_brackets_stars_reference_3 () {
		$test1 = array( 'str'=>'axa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1,3=>2),
						'length'=>array(0=>3,1=>1,2=>1,3=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)\(\1\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars with back reference, with character
	function data_for_test_nullsubexpr_screnned_brackets_stars_reference_char_1 () {
		$test1 = array( 'str'=>'axax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1,3=>2,4=>3),
						'length'=>array(0=>4,1=>1,2=>1,3=>1,4=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)\(\1\)\(x\)',
					 'tests'=>array($test1));
	}
	//screnned brackets and stars with back reference, with character
	function data_for_test_nullsubexpr_screnned_brackets_stars_reference_char_2 () {
		$test1 = array( 'str'=>'axxa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>1,2=>1,3=>2,4=>2),
						'length'=>array(0=>3,1=>0,2=>1,3=>0,4=>1),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'\(a*\)*\(x\)\(\1\)\(x\)',
					 'tests'=>array($test1));
	}
	//character with star concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_1 () {
		$test1 = array( 'str'=>'x',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>0),
						'length'=>array(0=>1,1=>0,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)*(x)',
					 'tests'=>array($test1));
	}
	//character with star concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_2 () {
		$test1 = array( 'str'=>'ax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)*(x)',
					 'tests'=>array($test1));
	}
	//character with star concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_3 () {
		$test1 = array( 'str'=>'axa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)*(x)',
					 'tests'=>array($test1));
	}
	//character with plus concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_4 () {							//???
		$test1 = array( 'str'=>'x',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>0),
						'length'=>array(0=>1,1=>0,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)+(x)',
					 'tests'=>array($test1));
	}
	//character with plus concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_5 () {
		$test1 = array( 'str'=>'ax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)+(x)',
					 'tests'=>array($test1));
	}
	//character with plus concatenated star and characer
	function data_for_test_nullsubexpr_concatenated_star_characer_6 () {
		$test1 = array( 'str'=>'axa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>1),
						'length'=>array(0=>2,1=>1,2=>1),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*)+(x)',
					 'tests'=>array($test1));
	}
	//character with star 2 matches concatenated characer
	function data_for_test_nullsubexpr_character_star_2_matches_char_1 () {
		$test1 = array( 'str'=>'x',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>0,2=>0),
						'length'=>array(0=>1,1=>0,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*){2}(x)',
					 'tests'=>array($test1));
	}
	//character with star 2 matches concatenated characer
	function data_for_test_nullsubexpr_character_star_2_matches_char_2 () {
		$test1 = array( 'str'=>'ax',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>1,2=>1),
						'length'=>array(0=>2,1=>0,2=>1),
						'left'=>array(0),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*){2}(x)',
					 'tests'=>array($test1));
	}
	//character with star 2 matches concatenated characer
	function data_for_test_nullsubexpr_character_star_2_matches_char_3 () {
		$test1 = array( 'str'=>'axa',
						'is_match'=>true,
						'full'=>true,
						'index_first'=>array(0=>0,1=>1,2=>1),
						'length'=>array(0=>2,1=>0,2=>1),
						'left'=>array(1),
						'next'=>qtype_preg_matching_results::UNKNOWN_NEXT_CHARACTER,
						'tags'=>array(qtype_preg_cross_tester::TAG_FROM_AT_AND_T));
		return array('regex'=>'(a*){2}(x)',
					 'tests'=>array($test1));
	}	
}
?>
